這是在我回顧以前ORM是什麼的筆記的心得。
很多技術的發展都是因為舊有的東西出了問題或是繁雜,因此發展出新的技術去解決或改進。但通常我們在學這個技術的時候只會看到他平鋪直敘的tutorial,類似介紹這個技術是什麼,他按部就班該怎麼用。說真的 很無感。這是在我回顧以前ORM是什麼的筆記的心得。
比較一下一般的學習與技術文章方式
一開始如果都不會的話,可能查一下wiki的定義,什麼是ORM
"物件關聯對映(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程式設計技術,用於實現物件導向程式語言裡不同類型系統的資料之間的轉換。從效果上說,它其實是建立了一個可在程式語言裡使用的「虛擬物件資料庫」。如今已有很多免費和付費的ORM產品,而有些程式設計師更傾向於建立自己的ORM工具。
物件導向是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關聯式資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,物件關聯對映技術應運而生。"
https://zh.wikipedia.org/wiki/%E5%AF%B9%E8%B1%A1%E5%85%B3%E7%B3%BB%E6%98%A0%E5%B0%84
嗯 有看沒有懂
"A simple answer is that you wrap your tables or stored procedures in classes in your programming language, so that instead of writing SQL statements to interact with your database, you use methods and properties of objects.
In other words, instead of something like this:
String sql = "SELECT ... FROM persons WHERE id = 10"
DbCommand cmd = new DbCommand(connection, sql);
Result res = cmd.Execute();
String name = res[0]["FIRST_NAME"];
you do something like this:
Person p = repository.GetPerson(10);
String name = p.FirstName;
Now, benefits. First of all, you hide the SQL away from your logic code
...
Additionally, you can focus on writing the logic, instead of getting all the SQL right
...
"
What is an Object-Relational Mapping Framework? [duplicate]
https://stackoverflow.com/questions/1152299/what-is-an-object-relational-mapping-framework
這樣就可以簡單懂了! ORM就是將database的世界與source code拆分出去,source code只要規範要CRUD什麼Object,database query 的sql與使用哪種database他切割出去到另外一個地方做。
簡單的說,覺得技術文章應該要是這樣寫
不然時常會覺得不知道到底這技術是拿來解決什麼的,無感 學習的動機跟學習的方向也就因此大打折扣